# @Time : 2021/4/13 14:53
# @Author : Fioman 
# @Phone : 13149920693
"""
和前端通信的工具接口,这个模块主要是用来发送前端消息的.
"""
import json
from tools.websocket_queue import WebSocketQueue

msgQueue = WebSocketQueue().websocketQueue


def send_cutter_camera_cal_state(msg):
    """
    更新铡刀标定的时候的使用到的变量信息
    :param msg: 消息内容
    :return:
    """
    msgType = "cutterCamCalState"
    send_msg_to_ui(msgType, msg)


def send_line_camera_joint_state(msg):
    """
    更新线阵相机的拼接界面的参数信息.
    :param msg: 消息内容
    :return:
    """
    msgType = "lineCamJointState"
    send_msg_to_ui(msgType, msg)


def send_line_camera_cal_state_to_ui(msg):
    """
    更新线阵相机的界面,主要用来刷新这个界面的状态更新
    :param msg: 消息内容
    :return:
    """
    msgType = "lineCamCalState"
    send_msg_to_ui(msgType, msg)


def send_cbj_zmc_tool_state_to_ui(msg):
    """
    更新裁切机工具界面的状态信息
    :param msg 要发送的消息
    :return:
    """
    msgType = "cbjZmcToolState"
    send_msg_to_ui(msgType, msg)


def send_settings_update_to_ui():
    """
    更新设置界面的数据的状态
    :return:
    """
    msgType = 'settingsUpdate'
    msg = {
        "val": "1"
    }
    send_msg_to_ui(msgType, msg)


def send_working_info_state_to_ui():
    """
    更新workinginfo的状态,这里
    :return:
    """
    msgType = "produceState"
    msg = {
        "val": 'workingInfo'
    }
    send_msg_to_ui(msgType, msg)


def send_produce_state_to_ui(msgVal):
    """
    发送生产作业的页面的状态信息
    :param msgVal 消息内容
    :return:
    """
    msgType = "produceState"
    send_msg_to_ui(msgType, msgVal)
    
def send_eap_msg_state_to_ui(msgVal):
    """
    发送eap页面的状态消息给前端
    :param msgVal 消息内容
    """
    msgType = "eapMsgShow"
    send_msg_to_ui(msgType, msgVal)


def send_order_state_to_ui(msg):
    """
    更新工单状态
    :param msg:使用的key值
    :return:
    """
    msgType = "orderStates"
    send_msg_to_ui(msgType, msg)


def send_msg_to_ui(msgType, msg):
    """
    将websocketQueue的内容发送给前端.
    :param msgType: 消息类型
    :param msg: 消息内容
    :return:
    """
    msgQueue.put(json.dumps({msgType: msg}))
